package com.nuorui.module.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nuorui.module.system.domain.entity.MenuEntity;
import com.nuorui.module.system.domain.query.MenuQueryForm;
import com.nuorui.module.system.domain.vo.MenuVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 菜单表
 *
 * @author
 * @date 2021-12-14 09:32:44
 */
public interface MenuMapper extends BaseMapper<MenuEntity> {


    /**
     * 列表查询
     *
     * @param queryForm
     * @return
     */
    List<MenuVO> selectMenuList(@Param("queryForm") MenuQueryForm queryForm);

    /**
     * 通过角色编号查询菜单
     *
     * @param roleId 角色ID
     * @return
     */
    List<MenuVO> listMenusByRoleId(Long roleId);

    /**
     * 根据菜单ID列表查询子菜单ID列表
     *
     * @param menuIdList
     * @return
     */
    List<Long> selectChildIdsByMenuIdList(@Param("menuIdList") List<Long> menuIdList);

    /**
     * 根据菜单名和父级菜单ID查询
     *
     * @param menuName
     * @param parentId
     * @return
     */
    MenuVO getByMenuName(@Param("menuName") String menuName, @Param("parentId") Long parentId);

    /**
     * 根据前端权限字符串查询
     *
     * @param webPerms
     * @return
     */
    MenuVO getByWebPerms(@Param("webPerms") String webPerms);

    /**
     * 根据菜单ID列表删除
     *
     * @param menuIdList
     * @return
     */
    boolean deleteByMenuIdList(@Param("menuIdList") List<Long> menuIdList);


}
